package com.ship.dispatch.service;

import com.github.pagehelper.PageInfo;
import com.ship.dispatch.bean.SpBoastPortMessage;
import com.ship.dispatch.bean.boats.QueryBoatsPortDetailsRq;
import com.ship.dispatch.bean.boats.QueryBoatsPortHistoryRq;
import com.ship.dispatch.bean.boats.QueryBoatsPortRq;
import com.ship.dispatch.bean.boats.QueryPortSisterRq;
import com.ship.dispatch.bean.boats.info.QueryBoatsPortDetailsInfo;
import com.ship.dispatch.bean.boats.info.QueryBoatsPortInfo;
import com.ship.dispatch.bean.boats.info.QueryBoatsPortSisterInfo;
import com.ship.dispatch.bean.boats.info.QueryPortInfo;
import com.ship.dispatch.model.dto.SpBoastPortMessageDetailDto;
import com.ship.dispatch.model.dto.SpBoastPortMessageShipDetailDto;
import com.ship.dispatch.vo.SpBoastPortMessageDetailVo;
import com.ship.dispatch.vo.SpBoastPortMessageExportVo;
import com.ship.dispatch.vo.SpBoastPortMessageVo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

public interface BoastPortMessageService {
    PageInfo<QueryBoatsPortInfo> queryBoatsPortList(QueryBoatsPortRq rq);

    QueryBoatsPortDetailsInfo queryBoatsPortByImo(String imo);

    PageInfo<QueryPortInfo> queryBoatsPortDetailsList(QueryBoatsPortDetailsRq rq);

    List<QueryBoatsPortSisterInfo> queryBoatsPortSisterList(QueryPortSisterRq rq);

    PageInfo<SpBoastPortMessage> queryBoatsPortHistoryList(QueryBoatsPortHistoryRq rq);

    List<QueryBoatsPortInfo> exportBoatsPort(QueryBoatsPortRq rq);

    List<SpBoastPortMessage> exportBoatsPortHistory(QueryBoatsPortHistoryRq rq);

    List<SpBoastPortMessageVo> queryBoatsPortPage(List<String> portNameChsList);

    List<QueryPortInfo> countShipTotal(String portNameChs);

    SpBoastPortMessageDetailVo getBoastPortMessageDetail(String portNameChs);

    PageInfo<SpBoastPortMessage> getBoatsPortHistoryList(SpBoastPortMessageShipDetailDto boastPortMessageShipDetailDto);

    List<SpBoastPortMessageExportVo> exportBoatsPortHistoryDetailList(SpBoastPortMessageDetailDto boastPortMessageDetailDto);

    List<QueryPortInfo> exportBoatsPortDetails(QueryBoatsPortDetailsRq rq);

    List<QueryBoatsPortSisterInfo> exportBoatsPortSisterList(QueryPortSisterRq rq);

    List<String> queryMessage(String type);

    String queryShipNameByImo(String imo);

    List<Map<String,String>> getBoastPortFileMessageDetail(String portNameChs,String type);

    String upload(MultipartFile file, String portNameChs,String type);

    String delBoatsPortFile(Long id);

    String getUrl(String id);

    List<String> queryPostNameList(String postName);
}
